package com.qujia.common.core.domain.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.qujia.common.core.domain.BaseEntity;

/**
 * 部门表 sys_dept
 *
 * @author qujia
 */
public class SysDept extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 部门ID */
    private Long deptId;

    /** 父部门ID */
    private Long parentId;

    /** 祖级列表 */
    private String ancestors;

    /** 部门名称 */
    private String deptName;

    /** 显示顺序 */
    private String orderNum;

    /** 负责人 */
    private String leader;

    /** 联系电话 */
    private String phone;

    /** 邮箱 */
    private String email;

    /** 部门状态:0正常,1停用 */
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 父部门名称 */
    private String parentName;

    /** 集团级别 */
    private Integer jiBie;

    /** 油站地址 */
    private String deptAddress;

    /** 油枪数量 */
    private Long oilGunNum;

    /** 油站照片 */
    private String stationPic;

    /** 油站经度 */
    private String stationLongitude;

    /** 油站纬度 */
    private String stationLatitude;

    /** 商户号 */
    private String mno;

    /** 小程序appid */
    private String appId;

    /** 油站小程序app_secret */
    private String appSecret;

    /**
     * 标签是否启用
     */
    private String labelFlag;

    /**
     * 打印机类型 1小票机 2是pos机
     */
    private String printDeviceType;
    //该集团是否为LNG平台加气：0，否；1，是；
    private String isLngFlag;
    private String city;
    //是否开启优惠卷
    private String couponEnabledFlag;

    public String getCouponEnabledFlag() {
        return couponEnabledFlag;
    }

    public void setCouponEnabledFlag(String couponEnabledFlag) {
        this.couponEnabledFlag = couponEnabledFlag;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getIsLngFlag() {
        return isLngFlag;
    }

    public void setIsLngFlag(String isLngFlag) {
        this.isLngFlag = isLngFlag;
    }

    public String getPrintDeviceType() {
        return printDeviceType;
    }

    public void setPrintDeviceType(String printDeviceType) {
        this.printDeviceType = printDeviceType;
    }

    public String getLabelFlag() {
        return labelFlag;
    }

    public void setLabelFlag(String labelFlag) {
        this.labelFlag = labelFlag;
    }

    /** 子部门 */
    private List<SysDept> children = new ArrayList<SysDept>();

    private List<String> deptIdList;

    private Long orDeptId;
    /** 该油站的优惠方案：0，不执行优惠方案；1，满减；2，立减；3，直降； */
    private String discountSetting;
    /** 是否开启电子卡功能：0，否；1，是 */
    private String cardEnabledFlag;
    /** 公众号APpID*/
    private String gzhAppId;
    /** 公众号密钥*/
    private String gzhAppSecret;
    /** 支付宝appid*/
    private String aliAppId;
    /** 支付宝公钥*/
    private String aliPublicKey;
    /** 支付宝私钥*/
    private String aliPrivateKey;
    /** 支付宝解密key*/
    private String aliEncryptKey;
    /** 照片1*/
    private String image1;
    /** 照片2*/
    private String image2;
    /** 照片3*/
    private String image3;
    /** 照片4*/
    private String image4;
    /** 照片5*/
    private String image5;
    /**班结是否打印(1,是 2 否)*/
    private String wsPrintFlag;
    /**打印小票（1 客户联 2 商户联 3商户联和客户联）*/
    private String printSetting;
    /**公告*/
    private String notice;
    /**积分是否打印(1,是 2 否)*/
    private String integralPrintFlag;
    /**积分是否启用（1.启用，2 关闭）*/
    private String integralFlag;
    /**积分规则是否共享*/
    private String  integralRuleFlag;
    /**电子卡规则是否共享*/
    private String  cardRuleFlag;
    /**优惠劵是否共享*/
    private String  couponFlag;

    /**分账收款商户编号*/
    private String  mnoArray;

    /**分账账号比例*/
    private String  mnoProportion;

    /**分账状态*/
    private String  mnoStatus;



    public String getMnoProportion() {
        return mnoProportion;
    }

    public void setMnoProportion(String mnoProportion) {
        this.mnoProportion = mnoProportion;
    }

    public String getMnoStatus() {
        return mnoStatus;
    }

    public void setMnoStatus(String mnoStatus) {
        this.mnoStatus = mnoStatus;
    }

    private Long userId;

    public String getMnoArray() {
        return mnoArray;
    }

    public void setMnoArray(String mnoArray) {
        this.mnoArray = mnoArray;
    }

    private BigDecimal balance;

    public String getMerchantNo() {
        return merchantNo;
    }

    public void setMerchantNo(String merchantNo) {
        this.merchantNo = merchantNo;
    }

    public String getTerminalId() {
        return terminalId;
    }

    public void setTerminalId(String terminalId) {
        this.terminalId = terminalId;
    }

    public String getYunKey() {
        return yunKey;
    }

    public void setYunKey(String yunKey) {
        this.yunKey = yunKey;
    }

    /**云闪付商户号码*/
    private String  merchantNo;
    /**云闪付终端号*/
    private String  terminalId;
    /**云闪付密钥*/
    private String  yunKey;


    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getCouponFlag() {
        return couponFlag;
    }

    public void setCouponFlag(String couponFlag) {
        this.couponFlag = couponFlag;
    }

    public String getIntegralRuleFlag() {
        return integralRuleFlag;
    }

    public void setIntegralRuleFlag(String integralRuleFlag) {
        this.integralRuleFlag = integralRuleFlag;
    }

    public String getCardRuleFlag() {
        return cardRuleFlag;
    }

    public void setCardRuleFlag(String cardRuleFlag) {
        this.cardRuleFlag = cardRuleFlag;
    }

    public String getDiscountSetting() {
        return discountSetting;
    }

    public void setDiscountSetting(String discountSetting) {
        this.discountSetting = discountSetting;
    }

    public String getCardEnabledFlag() {
        return cardEnabledFlag;
    }

    public void setCardEnabledFlag(String cardEnabledFlag) {
        this.cardEnabledFlag = cardEnabledFlag;
    }

    public String getGzhAppId() {
        return gzhAppId;
    }

    public void setGzhAppId(String gzhAppId) {
        this.gzhAppId = gzhAppId;
    }

    public String getGzhAppSecret() {
        return gzhAppSecret;
    }

    public void setGzhAppSecret(String gzhAppSecret) {
        this.gzhAppSecret = gzhAppSecret;
    }

    public String getAliAppId() {
        return aliAppId;
    }

    public void setAliAppId(String aliAppId) {
        this.aliAppId = aliAppId;
    }

    public String getAliPublicKey() {
        return aliPublicKey;
    }

    public void setAliPublicKey(String aliPublicKey) {
        this.aliPublicKey = aliPublicKey;
    }

    public String getAliPrivateKey() {
        return aliPrivateKey;
    }

    public void setAliPrivateKey(String aliPrivateKey) {
        this.aliPrivateKey = aliPrivateKey;
    }

    public String getAliEncryptKey() {
        return aliEncryptKey;
    }

    public void setAliEncryptKey(String aliEncryptKey) {
        this.aliEncryptKey = aliEncryptKey;
    }

    public String getImage1() {
        return image1;
    }

    public void setImage1(String image1) {
        this.image1 = image1;
    }

    public String getImage2() {
        return image2;
    }

    public void setImage2(String image2) {
        this.image2 = image2;
    }

    public String getImage3() {
        return image3;
    }

    public void setImage3(String image3) {
        this.image3 = image3;
    }

    public String getImage4() {
        return image4;
    }

    public void setImage4(String image4) {
        this.image4 = image4;
    }

    public String getImage5() {
        return image5;
    }

    public void setImage5(String image5) {
        this.image5 = image5;
    }

    public String getWsPrintFlag() {
        return wsPrintFlag;
    }

    public void setWsPrintFlag(String wsPrintFlag) {
        this.wsPrintFlag = wsPrintFlag;
    }

    public String getPrintSetting() {
        return printSetting;
    }

    public void setPrintSetting(String printSetting) {
        this.printSetting = printSetting;
    }

    public String getNotice() {
        return notice;
    }

    public void setNotice(String notice) {
        this.notice = notice;
    }

    public String getIntegralPrintFlag() {
        return integralPrintFlag;
    }

    public void setIntegralPrintFlag(String integralPrintFlag) {
        this.integralPrintFlag = integralPrintFlag;
    }

    public String getIntegralFlag() {
        return integralFlag;
    }

    public void setIntegralFlag(String integralFlag) {
        this.integralFlag = integralFlag;
    }

    public Long getOrDeptId() {
        return orDeptId;
    }

    public void setOrDeptId(Long orDeptId) {
        this.orDeptId = orDeptId;
    }

    public List<String> getDeptIdList() {
        return deptIdList;
    }

    public void setDeptIdList(List<String> deptIdList) {
        this.deptIdList = deptIdList;
    }

    public String getDeptAddress() {
        return deptAddress;
    }

    public void setDeptAddress(String deptAddress) {
        this.deptAddress = deptAddress;
    }

    public Long getOilGunNum() {
        return oilGunNum;
    }

    public void setOilGunNum(Long oilGunNum) {
        this.oilGunNum = oilGunNum;
    }

    public String getStationPic() {
        return stationPic;
    }

    public void setStationPic(String stationPic) {
        this.stationPic = stationPic;
    }

    public String getStationLongitude() {
        return stationLongitude;
    }

    public void setStationLongitude(String stationLongitude) {
        this.stationLongitude = stationLongitude;
    }

    public String getStationLatitude() {
        return stationLatitude;
    }

    public void setStationLatitude(String stationLatitude) {
        this.stationLatitude = stationLatitude;
    }

    public String getMno() {
        return mno;
    }

    public void setMno(String mno) {
        this.mno = mno;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAppSecret() {
        return appSecret;
    }

    public void setAppSecret(String appSecret) {
        this.appSecret = appSecret;
    }

    public Integer getJiBie() {
        return jiBie;
    }

    public void setJiBie(Integer jiBie) {
        this.jiBie = jiBie;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getParentId()
    {
        return parentId;
    }

    public void setParentId(Long parentId)
    {
        this.parentId = parentId;
    }

    public String getAncestors()
    {
        return ancestors;
    }

    public void setAncestors(String ancestors)
    {
        this.ancestors = ancestors;
    }

    @NotBlank(message = "部门名称不能为空")
    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
    public String getDeptName()
    {
        return deptName;
    }

    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    @NotBlank(message = "显示顺序不能为空")
    public String getOrderNum()
    {
        return orderNum;
    }

    public void setOrderNum(String orderNum)
    {
        this.orderNum = orderNum;
    }

    public String getLeader()
    {
        return leader;
    }

    public void setLeader(String leader)
    {
        this.leader = leader;
    }

    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
    public String getPhone()
    {
        return phone;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    @Email(message = "邮箱格式不正确")
    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getStatus()
    {
        return status;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getParentName()
    {
        return parentName;
    }

    public void setParentName(String parentName)
    {
        this.parentName = parentName;
    }

    public List<SysDept> getChildren()
    {
        return children;
    }

    public void setChildren(List<SysDept> children)
    {
        this.children = children;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("deptId", getDeptId())
            .append("parentId", getParentId())
            .append("ancestors", getAncestors())
            .append("deptName", getDeptName())
            .append("orderNum", getOrderNum())
            .append("leader", getLeader())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("discountSetting", getDiscountSetting())
            .append("cardEnabledFlag", getCardEnabledFlag())
            .append("gzhAppId", getGzhAppId())
            .append("gzhAppSecret", getGzhAppSecret())
            .append("aliAppId", getAliAppId())
            .append("aliPublicKey", getAliPublicKey())
            .append("aliPrivateKey", getAliPrivateKey())
            .append("aliEncryptKey", getAliEncryptKey())
            .append("image1", getImage1())
            .append("image2", getImage2())
            .append("image3", getImage3())
            .append("image4", getImage4())
            .append("image5", getImage5())
            .append("wsPrintFlag", getWsPrintFlag())
            .append("printSetting", getUpdateTime())
            .append("notice", getUpdateTime())
            .append("integralPrintFlag", getUpdateTime())
            .append("integralFlag", getUpdateTime())
            .toString();
    }

}
